package cn.wj.school.cloud.model;


import cn.wj.school.cloud.enums.OperationType;
import lombok.Data;

import java.util.Date;

/**
 * 
 * <strong>Title : ImeCommon.java<br>
 * </strong> <strong>Package : cn.b.sky.common.model<br>
 * </strong> <strong>Description : </strong>业务对象需要继承的父类， 保存用户操作的一些属性<br>
 * <strong>Create on : 2018-5-1 下午1:42:19<br>
 * </strong>
 * <p>
 * 
 * @author yueding<br>
 * @version <strong>v1.0.0</strong><br>
 *          <br>
 *          <strong>修改历史:</strong><br>
 *          修改人 | 修改日期 | 修改描述<br>
 *          -------------------------------------------<br>
 *          <br>
 *          <br>
 */
@Data
public class CommonModel {

    /**
     * 创建时间
     */
    private Date createAt;
    /**
     * 创建人
     */
    private Long creatorId;
    /**
     * 创建人姓名
     */
    private String creatorName;
    /**
     * 修改时间
     */
    private Date updateAt;
    /**
     * 修改人
     */
    private Long operatorId;
    /**
     * 修改人姓名
     */
    private String operatorName;


    /**
     * 填充用户操作信息
     *
     * @param userId
     * @param type
     */
    public void setCreateInfo(Long userId, String userName, OperationType type) {
        if (OperationType.CREATE.equals(type)) {
            this.setCreateAt(new Date());
            this.setCreatorId(userId);
            this.setUpdateAt(new Date());
            this.setOperatorId(userId);
            this.setOperatorName(userName);
            this.setCreatorName(userName);
        } else if (OperationType.MODIFY.equals(type) || OperationType.DELETE.equals(type)) {
            this.setUpdateAt(new Date());
            this.setOperatorId(userId);
            this.setOperatorName(userName);
        }
    }
}
